﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Configuration;
using turnos.core.modelo;
using turnos.controller.bussines;

namespace turnos.escritorio
{
    public class Modelo
    {
        #region Variables de instancia
        private static Modelo _modelo;


        private TurnosController _hc;
        private Usuarios _us;

        
        #endregion

        /*=== Propiedades ===*/
        #region Propiedades

        public string Cnx
        {
            get { return ConfigurationManager.ConnectionStrings["TurnosEntities"].ConnectionString; }
        }

        public static Modelo TurnosModelo
        {
            get
            {
                if (_modelo == null)
                    _modelo = new Modelo();
                return Modelo._modelo;
            }
        }


        public Usuarios Usuario
        {
            get { return _us; }
            set { _us = value; }
        }

        public TurnosController TurnosC
        {
            get
            {
                if (_hc == null)
                    _hc = new TurnosController(Cnx);
                return _hc;
            }
        }

        
        


        #endregion

        /*=== Constructores ===*/
        #region Constructores
        public Modelo()
        {
        }
        #endregion

        /*=== Métodos ===*/
        #region Métodos
        public void ConfigurarDGV(DataGridView dgv, List<DataGridViewColumn> columnas)
        {
            foreach (DataGridViewColumn col in columnas)
            {
                dgv.Columns.Add(col);
            }
            dgv.AutoGenerateColumns = false;
            dgv.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
            dgv.ReadOnly = true;

        }
        
        #endregion




        public void FinalizarAgenda(AgendaDeTurnos AgendaSeleccionada, Solicitantes solicitante, DateTime dateTime, string usuario)
        {
            this.TurnosC.finalizarTurno(AgendaSeleccionada, solicitante, dateTime, usuario);
        }
    }
   
}
